package com.ypx.util;

import lombok.Data;

import java.util.List;

/**
 * 泛型类`JsonObject<T>`，用于封装后端返回的JSON数据
 * 指定data属性需要封装的数据类型
 * 统一封装JSON数据格式，并且方便后续代码的维护和扩展。如果后端返回的JSON数据格式发生变化，只需要修改该类中的属性即可，
 * 而不需要修改所有调用该JSON数据格式的代码。另外，在前端代码中，也可以很方便地直接使用该类来解析JSON数据，以便对数据进行操作和渲染。
 * @param <T>
 */
@Data
public class JsonObject<T> {
    private Integer code;//状态码
    private String msg;//请求的消息
    private  Long count;//数据的总数量
    private List<T> data;//数据列表

    public JsonObject(Integer code, String msg, Long count, List<T> data) {
        this.code = code;
        this.msg = msg;
        this.count = count;
        this.data = data;
    }

    public JsonObject() {
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Long getCount() {
        return count;
    }

    public void setCount(Long count) {
        this.count = count;
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }
}
